/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ec.dmz.seguridad.ejb.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author Estiwar
 */
@Entity
@Table(name = "sigugp.sg_usuario")
@NamedQueries({
    @NamedQuery(name = "Usuario.findAll", query = "SELECT u FROM Usuario u")})
public class Usuario implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "usu_codigo")
    private Integer usuCodigo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 20)
    @Column(name = "usu_login")
    private String usuLogin;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 32)
    @Column(name = "usu_clave")
    private String usuClave;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "usu_nombres")
    private String usuNombres;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "usu_apellidos")
    private String usuApellidos;
    @Basic(optional = false)
    @NotNull
    @Column(name = "usu_estado")
    private short usuEstado;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 13)
    @Column(name = "usu_identificacion")
    private String usuIdentificacion;
    @Size(max = 30)
    @Column(name = "usu_telefono")
    private String usuTelefono;
    @Size(max = 15)
    @Column(name = "usu_numerocelular")
    private String usuNumerocelular;
    @Size(max = 60)
    @Column(name = "usu_direccion")
    private String usuDireccion;
    @Size(max = 30)
    @Column(name = "usu_email")
    private String usuEmail;
    @Basic(optional = false)
    @NotNull
    @Column(name = "usu_fechaalta")
    @Temporal(TemporalType.DATE)
    private Date usuFechaalta;
    @Column(name = "usu_fechabaja")
    @Temporal(TemporalType.DATE)
    private Date usuFechabaja;
    @Column(name = "usu_fechaexpiracioncodigo")
    @Temporal(TemporalType.DATE)
    private Date usuFechaexpiracioncodigo;
    @Basic(optional = false)
    @NotNull
    @Column(name = "usu_fecharegistro")
    @Temporal(TemporalType.TIMESTAMP)
    private Date usuFecharegistro;
    @OneToMany(mappedBy = "usuCodigo")
    private List<UsuarioPerfil> usuarioPerfilList;

    public Usuario() {
    }

    public Usuario(Integer usuCodigo) {
        this.usuCodigo = usuCodigo;
    }

    public Usuario(Integer usuCodigo, String usuLogin, String usuClave, String usuNombres, String usuApellidos, short usuEstado, String usuIdentificacion, Date usuFechaalta, Date usuFecharegistro) {
        this.usuCodigo = usuCodigo;
        this.usuLogin = usuLogin;
        this.usuClave = usuClave;
        this.usuNombres = usuNombres;
        this.usuApellidos = usuApellidos;
        this.usuEstado = usuEstado;
        this.usuIdentificacion = usuIdentificacion;
        this.usuFechaalta = usuFechaalta;
        this.usuFecharegistro = usuFecharegistro;
    }

    public Integer getUsuCodigo() {
        return usuCodigo;
    }

    public void setUsuCodigo(Integer usuCodigo) {
        this.usuCodigo = usuCodigo;
    }

    public String getUsuLogin() {
        return usuLogin;
    }

    public void setUsuLogin(String usuLogin) {
        this.usuLogin = usuLogin;
    }

    public String getUsuClave() {
        return usuClave;
    }

    public void setUsuClave(String usuClave) {
        this.usuClave = usuClave;
    }

    public String getUsuNombres() {
        return usuNombres;
    }

    public void setUsuNombres(String usuNombres) {
        this.usuNombres = usuNombres;
    }

    public String getUsuApellidos() {
        return usuApellidos;
    }

    public void setUsuApellidos(String usuApellidos) {
        this.usuApellidos = usuApellidos;
    }

    public short getUsuEstado() {
        return usuEstado;
    }

    public void setUsuEstado(short usuEstado) {
        this.usuEstado = usuEstado;
    }

    public String getUsuIdentificacion() {
        return usuIdentificacion;
    }

    public void setUsuIdentificacion(String usuIdentificacion) {
        this.usuIdentificacion = usuIdentificacion;
    }

    public String getUsuTelefono() {
        return usuTelefono;
    }

    public void setUsuTelefono(String usuTelefono) {
        this.usuTelefono = usuTelefono;
    }

    public String getUsuNumerocelular() {
        return usuNumerocelular;
    }

    public void setUsuNumerocelular(String usuNumerocelular) {
        this.usuNumerocelular = usuNumerocelular;
    }

    public String getUsuDireccion() {
        return usuDireccion;
    }

    public void setUsuDireccion(String usuDireccion) {
        this.usuDireccion = usuDireccion;
    }

    public String getUsuEmail() {
        return usuEmail;
    }

    public void setUsuEmail(String usuEmail) {
        this.usuEmail = usuEmail;
    }

    public Date getUsuFechaalta() {
        return usuFechaalta;
    }

    public void setUsuFechaalta(Date usuFechaalta) {
        this.usuFechaalta = usuFechaalta;
    }

    public Date getUsuFechabaja() {
        return usuFechabaja;
    }

    public void setUsuFechabaja(Date usuFechabaja) {
        this.usuFechabaja = usuFechabaja;
    }

    public Date getUsuFechaexpiracioncodigo() {
        return usuFechaexpiracioncodigo;
    }

    public void setUsuFechaexpiracioncodigo(Date usuFechaexpiracioncodigo) {
        this.usuFechaexpiracioncodigo = usuFechaexpiracioncodigo;
    }

    public Date getUsuFecharegistro() {
        return usuFecharegistro;
    }

    public void setUsuFecharegistro(Date usuFecharegistro) {
        this.usuFecharegistro = usuFecharegistro;
    }

    public List<UsuarioPerfil> getUsuarioPerfilList() {
        return usuarioPerfilList;
    }

    public void setUsuarioPerfilList(List<UsuarioPerfil> usuarioPerfilList) {
        this.usuarioPerfilList = usuarioPerfilList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (usuCodigo != null ? usuCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Usuario)) {
            return false;
        }
        Usuario other = (Usuario) object;
        if ((this.usuCodigo == null && other.usuCodigo != null) || (this.usuCodigo != null && !this.usuCodigo.equals(other.usuCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "ec.dmz.seguridad.ejb.model.Usuario[ usuCodigo=" + usuCodigo + " ]";
    }
    
}
